package traceMyItems.server;
import java.util.logging.Logger;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import traceMyItems.business.TraceMyItems;
import traceMyItems.business.User;

public class CreateUser extends HttpServlet{ 
  /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private static final Logger log = Logger.getLogger(CreateUser.class.getName());
	
public void doGet(HttpServletRequest request, 
  HttpServletResponse response)
  throws ServletException,IOException{
  
	
	
  }

public void doPost(HttpServletRequest request, 
		  HttpServletResponse response)
		  throws ServletException,IOException
		  {
			log.info("Pedido de CREATE USER recibido");
			String strJsonResponse = "";
			response.setContentType("text/x-json;charset=UTF-8");           
		    response.setHeader("Cache-Control", "no-cache");
			
		    String strUserName = request.getParameter("usuario");
		    String strPassword = request.getParameter("clave");
		    String strFirstName = request.getParameter("nombre");
		    String strSurname = request.getParameter("apellido");
		    String strEmail = request.getParameter("mail");
			
		    if(strUserName.isEmpty())
		    {
		    	log.warning("El nombre de usuario (strUserName) esta incompleto");
		    	strJsonResponse = "{\"status\":\"not_ok\", \"mensaje\":\"El nombre de usuario esta incompleto\" }";
		        response.getWriter().write(strJsonResponse);
		    	return;
		    }
		    if(strPassword.isEmpty())
		    {
		    	log.warning("El nombre de usuario (strPassword) esta incompleto");
		    	strJsonResponse = "{\"status\":\"not_ok\", \"mensaje\":\"El password esta incompleto\" }";
		        response.getWriter().write(strJsonResponse);
		    	return;
		    } 
		    if(strFirstName.isEmpty())
		    {
		    	log.warning("El nombre de pila (strFirstName) esta incompleto");
		    	strJsonResponse = "{\"status\":\"not_ok\", \"mensaje\":\"El nombre de pila esta incompleto\" }";
		        response.getWriter().write(strJsonResponse);
		    	return;
		    } 
		    if(strSurname.isEmpty())
		    {
		    	log.warning("El apellido (strSurname) esta incompleto");
		    	strJsonResponse = "{\"status\":\"not_ok\", \"mensaje\":\"El apellido esta incompleto\" }";
		        response.getWriter().write(strJsonResponse);
		    	return;
		    } 
		    if(strEmail.isEmpty())
		    {
		    	log.warning("El mail (strEmail) esta incompleto");
		    	strJsonResponse = "{\"status\":\"not_ok\", \"mensaje\":\"El mail esta incompleto\" }";
		        response.getWriter().write(strJsonResponse);
		    	return;
		    } 
		    
		    
			TraceMyItems objManager = TraceMyItems.getInstance();			
			
			try
			{
				User objNewUser = new User();
				log.warning("Email: "+strEmail);
				objNewUser.setEmail(strEmail);
				log.warning("Nombre de pila: "+strFirstName);
				objNewUser.setFirstName(strFirstName);
				log.warning("Apellido: "+strSurname);
				objNewUser.setLastName(strSurname);
				log.warning("Password: "+strPassword);
				objNewUser.setPassword(strPassword);
				log.warning("Username: "+strUserName);
				objNewUser.setUsername(strUserName);
				
				objManager.createUser(objNewUser);
				
				strJsonResponse = "{\"status\":\"ok\", \"mensaje\":\"Usuario creado OK \" }";
				
				response.getWriter().write(strJsonResponse);
			}
			catch(Exception ex)
			{				
				log.warning("Excepcion creando usuario: "+ex.getMessage());
				strJsonResponse = "{\"status\":\"not_ok\", \"mensaje\":\"Surgio un error al conectarse con la base de datos, reintente mas tarde \" }";
							
				response.getWriter().write(strJsonResponse);
		   
			}
			
		  }

}